#include <iostream>
#include <thread>
#include <mutex>
#include <vector>
using namespace std;

//int main()
//{
//	int n = 10;
//	int count = 0;
//	mutex m;
//	thread t1([&]()
//		{
//			m.lock();
//			for (int i = 0; i < n; ++i)
//			{
//				cout << this_thread::get_id() << ":" << i << endl;
//				++count; 
//				this_thread::sleep_for(chrono::milliseconds(500));
//			}
//			m.unlock();
//		});
//	thread t2([&]()
//		{
//			m.lock();
//			for (int i = 0; i < n; ++i)
//			{
//				cout << this_thread::get_id() << ":" << i << endl;
//				++count;
//				this_thread::sleep_for(chrono::milliseconds(500));
//			}
//			m.unlock();
//		});
//	t1.join();
//	t2.join();
//
//	cout << count << endl;
//	return 0;
//}

int main()
{
	int n = 10;
	int count = 0;
	int x=0;
	mutex m;
	cin >> x;
	vector<thread> vt(x);

	for (int i = 0; i < x; ++i)
	{
		vt[i] = thread([&]()
			{
				lock_guard<mutex> lk(m);
				for (int i = 0; i < n; ++i)
				{
					cout << this_thread::get_id() << ":" << i << endl;
					++count;
					this_thread::sleep_for(chrono::milliseconds(100));
				}
			});
	}

	for (auto& e : vt)
	{
		e.join();
	}

	cout << count << endl;
	return 0;
}